package unq.persistencia;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

/**
 * TODO: description
 */
public class OperacionesPartidoDeCopa implements Operaciones {

    private PartidoDeCopaDAO partidoDeCopaDAO;

    public PartidoDeCopaDAO getPartidoDeCopaDAO() {
        return this.partidoDeCopaDAO;
    }

    public void setPartidoDeCopaDAO(final PartidoDeCopaDAO partidoDeCopaDAO) {
        this.partidoDeCopaDAO = partidoDeCopaDAO;
    }

    public OperacionesPartidoDeCopa() {
        this.setPartidoDeCopaDAO(new PartidoDeCopaDAO());
    }

    @Override
    public void generarYPersistir() {
        List<PartidoDeCopa> partidosDeCopa = new ArrayList<PartidoDeCopa>();
        List<Equipo> equipos = this.partidoDeCopaDAO.select();

        for (int i = 0; i < 5000; i++) {

            int n1 = new Random().nextInt(16);
            int n2 = new Random().nextInt(16);

            while (n1 == n2) {
                n2 = new Random().nextInt(16);
            }

            Equipo eq1 = equipos.get(n1);
            Equipo eq2 = equipos.get(n2);

            partidosDeCopa.add(new PartidoDeCopa(
                    new Partido(eq1, eq2, new Random().nextInt(7), new Random().nextInt(7)), new Partido(eq2, eq1,
                            new Random().nextInt(7), new Random().nextInt(7)), new Random().nextInt(5), new Random()
                            .nextInt(7)));

        }
        this.getPartidoDeCopaDAO().save(partidosDeCopa);

    }

    // public void equiposOrdenados() {
    // List<Object[]> equipos = this.getPartidoDeCopaDAO().equiposOrdenadoPorPartidoDeCopa();
    // for (Object[] arrays : equipos) {
    // System.out.println(((Equipo) arrays[0]).getNombre() + "---" + arrays[1]);
    //
    // }

    // }
    public void equiposOrdenados() {
        List<Object[]> equipos = this.getPartidoDeCopaDAO().equiposOrdenados(" cantidad desc ", "PartidoDeCopa");
        for (Object[] arrays : equipos) {
            System.out.println(((Equipo) arrays[0]).getNombre() + "---" + arrays[1]);
        }

    }

}
